﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Optimization;
using System.Web.Routing;
using System.Web.Security;
using ICE.Vacations.WebASP;
using ICE.Vacations.Logica.Users;
using ICE.Vacations.Entidades;

namespace ICE.Vacations.WebASP
{
    public class Global : HttpApplication
    {
  


        void Application_Start(object sender, EventArgs e)
        {
            // Código que se ejecuta al iniciarse la aplicación
            BundleConfig.RegisterBundles(BundleTable.Bundles);
            AuthConfig.RegisterOpenAuth();
        }

        void Application_End(object sender, EventArgs e)
        {
            //  Código que se ejecuta al cerrarse la aplicación

        }

        void Application_Error(object sender, EventArgs e)
        {
            // Código que se ejecuta cuando se produce un error sin procesar

        }

        protected void Session_Start(object sender, EventArgs e)
        {
            Session["username"] = null;
            Session["userType"] = null;
            Session["userObj"] = null;
            Session["configLoaded"] = null;
            Session["userDataLoaded"] = null;
            Session["aprobadores"] = null;

            if (Session["configLoaded"] == null)
            {
                ICE.Vacations.Entidades.Config.LoadConfig();
                Session["configLoaded"] = "si";
            }

            if (Session["username"] == null)
            {
                string username = Request.LogonUserIdentity.Name;
                Session["username"] = username;
                Recurso usuario = UsersManager.getRecurso(username);
                Session["userType"] = usuario.tipo;
                Session["userObj"] = usuario;
                

                //Aprobadores

                Recurso otroUsuario = UsersManager.getOtroRecurso(usuario.aprobador1);
                List<string> nuevo = new List<string>();
                nuevo.Add(otroUsuario.nombre + " " + otroUsuario.apellido1 + " " + otroUsuario.apellido2);
                otroUsuario = UsersManager.getOtroRecurso(usuario.aprobador2);
                nuevo.Add(otroUsuario.nombre + " " + otroUsuario.apellido1 + " " + otroUsuario.apellido2);
                otroUsuario = UsersManager.getOtroRecurso(usuario.aprobador3);
                nuevo.Add(otroUsuario.nombre + " " + otroUsuario.apellido1 + " " + otroUsuario.apellido2);

                Session["aprobadores"] = nuevo;
            }

        }

    }
}
